package k2_oop.p1_classAndObject.demo15;

/**
 * 为"无名的粉"写一个类：class WuMingFen 要求：
 *  1.有三个属性：面码:String theMa 粉的份量(两)：int quantity
 *  是否带汤：boolean likeSoup
 *  2.写一个构造方法，以便于简化初始化过程，如：
 *  WuMingFen f1 = new WuMingFen("牛肉",3,true);
 *  3.重载构造方法，使得初始化过程可以多样化：
 *  WuMingFen f2 = new WuMingFen("牛肉",2);
 *  4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的？
 *  WuMingFen f3 = new WuMingFen();
 *  5.写一个普通方法：check()，用于查看粉是否符合要求。即：将对象的三个属性打印在控制台上。
 */
public class WuMingFen {

    /**
     * 如果属性被设置为private，可以根据实际情况决定是否使用 get 或 set 的方法（访问器）
     */
    private String theMa;
    private int quantity;
    private boolean likeSoup;

    public WuMingFen(String theMa, int quantity, boolean likeSoup) {
        this.theMa = theMa;
        this.quantity = quantity;
        this.likeSoup = likeSoup;
    }

    public WuMingFen(String theMa, int quantity) {
        this.theMa = theMa;
        this.quantity = quantity;
    }


    public void check(){
        System.out.println(this.theMa+"==="+this.quantity+"==="+this.likeSoup);
    }

    /**
     * 1.访问修饰符必须是public
     * 2.一个方法获取的一定是某一个具体的属性
     * 3.获取属性不需要参数，但是一定需要返回值，因为需要把这个属性的值返回给调用它的对象
     * @return
     */
    public String getTheMa(){
        return this.theMa;
    }

    /**
     * 1.访问修饰符必须是public
     * 2.一个方法设置的一定是某一个具体的属性
     * 3.设置属性需要把内容传递进来才能设置，所以一定需要参数，设置完毕后无需返回任何内容
     * @param theMa
     */
    public void setTheMa(String theMa){
        this.theMa = theMa;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public boolean isLikeSoup() {
        return likeSoup;
    }

    public void setLikeSoup(boolean likeSoup) {
        this.likeSoup = likeSoup;
    }
}
